

#ifndef __CE_TRANSFORM_H__
#define __CE_TRANSFORM_H__

#include <cegfx/ceexport.h>
#include <d3dx9.h>
#include <cegfx/iqf.h>

class CE_GFX_API ceTransform : public iBase
{
	IQF_DECLARATION;
private:
	D3DXMATRIX	matrix;

public:
	ceTransform ();

	const D3DXMATRIX& GetMatrix () const;
	D3DXMATRIX& GetMatrix ();

	D3DXVECTOR3 GetPosition () const;

	void SetIdentity ();

	void SetTranslation (float x, float y, float z);
	void SetTranslation (const D3DXVECTOR3& trans);

	void RotateX (float angle);
	void RotateY (float angle);
	void RotateZ (float angle);
	void Rotate (const D3DXVECTOR3& axis, float angle);

	void RotateGlobalX (float angle);
	void RotateGlobalY (float angle);
	void RotateGlobalZ (float angle);
	void RotateGlobal (const D3DXVECTOR3& axis, float angle);

	void Translate (float x, float y, float z);
	void Translate (const D3DXVECTOR3& direction);

	void TranslateGlobal (float x, float y, float z);
	void TranslateGlobal (const D3DXVECTOR3& direction);
	/*
	void GlobalRotateX (float angle);
	void GlobalRotateY (float angle);
	void GlobalRotateZ (float angle);
	void GlobalRotate (float x, float y, float z, float angle);
	*/


};

#endif /* ! __CE_TRANSFORM_H__ */ 
